package com.quickcancellation.crm.mapper;

import com.github.yulichang.base.MPJBaseMapper;
import com.quickcancellation.crm.pojo.entity.Menu;
import com.quickcancellation.crm.pojo.entity.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author baomidou
 * @since 2023-02-25
 */
public interface RoleMapper extends MPJBaseMapper<Role> {
    /**
     * 根据用户名 获取用户权限
     *
     * @param usernumber
     * @return
     */
    List<String> getUserRoleList(String usernumber);

    /**
     * 根据
     *
     * @param usernumber
     * @return
     */
    List<Role> getRoleListByUsernumber(String usernumber);

    /**
     * 添加用户权限
     *
     * @return
     */
    int addUserRole(@Param("usernumber") String usernumber,
                    @Param("roleId")Long roleId,
                    @Param("currentUserNumber")String currentUserNumber);

    /**
     * 删除用户权限
     * @param usernumber 用户
     * @param roleId 角色id
     * @return
     */
    int deleteUserRole(String usernumber, Long roleId);

    /**
     * 获取该用户权限id
     * @param roleId
     * @return
     */
    List<Long> getRoleMenuByRoleId(String roleId);

    /**
     * 保存 角色拥有的菜单权限
     * @param id
     * @param menuId
     * @return
     */
    int saveRoleMenu(@Param("roleId") Long id,@Param("menuId") Long menuId);

    /**
     * 删除 角色拥有的菜单权限
     * @param id
     * @param menuId
     * @return
     */
    int deleteRoleMenu(@Param("roleId") Long id,@Param("menuId") Long menuId);

    /**
     * 获取角色左边菜单栏
     * @param usernumber 用户号
     * @return 所有左边菜单栏
     */
    List<Menu> getMenuListByUsernumber(String usernumber);

    /**
     * 获取默认菜单
     * @param usernumber
     * @return
     */
    String getDefaultMenu(String usernumber);
}
